#define _CRT_SECURE_NO_WARNINGS
#include "head.h"
/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
//class Solution {
//public:
//    bool hasCycle(ListNode* head) {
//        ListNode* fast = (ListNode*)malloc(sizeof(ListNode));
//        ListNode* slow = (ListNode*)malloc(sizeof(ListNode));
//        fast = slow = head;
//        if (head == NULL) return false;
//        while (fast->next != NULL && fast->next->next != NULL)
//        {
//            fast = fast->next->next;
//            slow = slow->next;
//            if (fast == slow) return true;
//        }
//        if (fast->next == NULL || fast->next->next == NULL) return false;
//        return false;
//    }
//};
///**
// * Definition for singly-linked list.
// * struct ListNode {
// *     int val;
// *     ListNode *next;
// *     ListNode() : val(0), next(nullptr) {}
// *     ListNode(int x) : val(x), next(nullptr) {}
// *     ListNode(int x, ListNode *next) : val(x), next(next) {}
// * };
// */
//class Solution {
//public:
//    ListNode* mergeTwoLists(ListNode* list1, ListNode* list2) {
//        ListNode* head = (ListNode*)malloc(sizeof(ListNode));
//        ListNode* tmp = head;
//        tmp->next = NULL;
//        while (list1 && list2)
//        {
//            if (list1->val < list2->val)
//            {
//                tmp->next = list1;
//                list1 = list1->next;
//                tmp = tmp->next;
//            }
//            else
//            {
//                tmp->next = list2;
//                list2 = list2->next;
//                tmp = tmp->next;
//            }
//        }
//        while (list1)
//        {
//            tmp->next = list1;
//            list1 = list1->next;
//            tmp = tmp->next;
//        }
//        while (list2)
//        {
//            tmp->next = list2;
//            list2 = list2->next;
//            tmp = tmp->next;
//        }
//        return head->next;
//    }
//};
///**
// * Definition for singly-linked list.
// * struct ListNode {
// *     int val;
// *     ListNode *next;
// *     ListNode() : val(0), next(nullptr) {}
// *     ListNode(int x) : val(x), next(nullptr) {}
// *     ListNode(int x, ListNode *next) : val(x), next(next) {}
// * };
// */
//class Solution {
//public:
//    ListNode* removeElements(ListNode* head, int val) {
//        ListNode* guard = (ListNode*)malloc(sizeof(ListNode));
//        ListNode* tmp = guard;
//        while (head)
//        {
//            if (head->val == val)
//            {
//                head = head->next;
//            }
//            else
//            {
//                tmp->next = head;
//                head = head->next;
//                tmp = tmp->next;
//            }
//        }
//        tmp->next = NULL;
//        return guard->next;
//    }
//};
#include <stdio.h>

//int main() {
//    float a;
//    scanf("%f", &a);
//    int ans = a + 0.5f;
//    printf("%d\n", ans);
//    return 0;
//}
//int trailingZeroes(int n) {
//    int tmp = 0;
//    while (n)
//    {
//        tmp += (n /= 5);
//    }
//    return tmp;
//}